( function(){
	var cache = {},
            uuidCounter = 1,
            ts = 'data-' + new Date().getTime();
        this.getData = function( element ){
		var uuid = element[ ts ];
		if( ! uuid ){
		    uuid = element[ ts ] = uuidCounter;
		    cache[ uuidCounter ] = {};
		    ++ uuidCounter;
		}
		return cache[ uuid ];
	}
	this.removeData = function( element ){
	     var uuid = element[ ts ];
	     if( ! uuid )
		return;
	     delete cache[ uuid ];
	     try{
                 delete element[ ts ];
	     } catch( e ){
		     if( element.removeAttribute ){
			     element.removeAttribute( ts );
		     } 
	     }
	}
})();
